#include <iostream>
#include <vector>
#include <string>

using namespace std;

int maximumSwap(int num) {
    string s = to_string(num);
    vector<int> n(10, -1) ; int i = s.size() - 1;
    while(i >= 0){
        if(n[s[i] - '0'] == -1){
            n[s[i] - '0'] = i;
        } 
        i--;
    }
    for(i = 0; i < s.size(); i++){
        for(int j = 9; j > s[i] - '0'; j--){
            if(n[j] > i){
                swap(s[i], s[n[j]]);
                return stoi(s);
            } 
        }
    }
    return num;
}

int main(){
    int num = 25424;
    cout << maximumSwap(num) << endl;
    return 0;
}
